Classic ASP Part-3 Scripting in ASP Pages

 नमस्ते दोस्तों 🙏

यदि आप क्लासिक ASP Page के भीतर किए जाने वाले स्क्रिप्टिंग के बारे में नहीं जानते हैं तो यह लेख आपके लिए उपयोगी हो सकता है। आइए, क्लासिक ASP Page के भीतर किए जाने वाले स्क्रिप्टिंग के बारे में समझें।

ASP में स्क्रिप्टिंग

ASP के भीतर आमतौर पर VBScript का उपयोग किया जाता है। हम किसी अन्य स्क्रिप्टिंग लैंग्वेज का प्रयोग भी ASP page के भीतर कर सकते हैं, जैसे JScript और PerlScript लेकिन आमतौर पर VBScript का उपयोग ASP के भीतर किया जाता है।

HTML फाइल में HTML की कोडिंग होती है जबकि ASP फाइल के भीतर HTML के साथ-साथ ASP के स्क्रिप्ट की कोडिंग होती है। 

Page के भीतर जहां जहां ASP का स्क्रिप्ट यूज करना होता है उसके लिए हम स्क्रिप्ट डेलीमीटर (script delimiter) का उपयोग करते हैं जो <% से शुरू होता है और %> से समाप्त होता है। उदाहरण के लिए,

<!DOCTYPE html>
<html>
<body>
<%
response.write("My first ASP script!")
%>
</body>
</html>

स्क्रिप्टिंग डेलीमीटर के भीतर अगर हम किसी खास स्क्रिप्टिंग लैंग्वेज का उपयोग करना चाहते हैं तो हम लैंग्वेज डायरेक्टिव का उपयोग करते हैं। ASP के बिल्कुल टॉप में पहली लाइन में हम लैंग्वेज डायरेक्टिव का उपयोग करते हैं। जैसे <%@ Language=JScript %>

Example

<%@ language="javascript"%>
<!DOCTYPE html>
<html>
<body>
<%
Response.Write("<h2>You can use HTML tags to format the text!</h2>")
Response.Write("<p style='color:#0000ff'>This text is styled.</p>")
%>
</body>
</html>

ध्यान दीजिए कि

  • हम डायरेक्टिव का उपयोग करने के लिए ऐड द रेट @ सिंबल का प्रयोग परसेंटेज % संकेत के बिल्कुल सटे हुए करते हैं।
  • Script के भीतर HTML code को embed किया जा सकता है, जैसे
    • Response.Write("<h2>You can use HTML tags to format the text!</h2>"

Output Directive
ASP के अंतर्गत किसी एक्सप्रेशन के मान को आउटपुट करने के लिए हम आउटपुट डायरेक्टिव का उपयोग करते हैं इस डायरेक्टर का उपयोग करने के लिए हमें script delimiter के starting delimiter के बाद बराबर का निशान देना होता है। <%= expression%> अर्थात <% Response.Write(expression) %> 

अतः Response.Write() का एक आसान शॉर्टकट है। आप इसकी जगह बराबर का निशान (<%=) इस्तेमाल कर सकते हैं। जैसे 
  • Response.Write("Hello World!") की जगह <%= "Hello World!" %>
  • Response.Write(2+4) की जगह <%= 2+4 %> 

ध्यान दें: <%= को कभी-कभी expression delimiter या output directive भी कहा जाता है क्योंकि यह expression का परिणाम सीधे output stream में भेज देता है।

VBScript in ASP Page
VBScript में जिस तरीके से variables declare, for loop, procedure function इत्यादि का उपयोग  किया जाता है, वही हम ASP में करते हैं जैसे

<html>
<body>

<%
Dim x
x ="Appliedk"
    for i=0 to 2
        response.write(x & i & "<br />")
    next
%>

</body>
</html>

Sub Procedure in ASP

<%
<!DOCTYPE html>
<html>
<body>
<%
sub product(num1,num2)
	response.write(num1*num2)
end sub
<p>Result: <%call product(3,4)%></p>
%>
</body>
</html>

Result: 12

सर्वर साइड स्क्रिप्टिंग

एक HTML पेज में Client-side scripting और Server-side scripting दोनों हो सकती हैं।

  • Client-side scripting → ब्राउज़र पर execute होती है (जैसे JavaScript)
  • Server-side scripting → सर्वर पर execute होती है और उसका परिणाम HTML बनकर ब्राउज़र तक पहुँचता है

जब ASP के अंतर्गत सर्वर साइड स्क्रिप्टिंग करनी होती है तो इस <script> टैग के भीतर runat ="server" आट्रिब्यूट का प्रयोग करते हैं। इससे यह स्पष्ट होता है कि यह स्क्रिप्ट सर्वर पर रन होगा।

ASP (विशेषकर ASP.NET Web Forms) में यदि <script> टैग के अंदर लिखी स्क्रिप्ट को सर्वर पर execute कराना हो, तो runat="server" attribute का उपयोग किया जाता है।

<script runat="server">
    void Page_Load()
    {
        Response.Write("Hello from Server");
    }
</script>

यहाँ: runat="server" बताता है कि यह स्क्रिप्ट server-side execute होगी। ब्राउज़र को केवल उसका output मिलेगा, स्क्रिप्ट नहीं। इसके विपरीत: <script> alert("Hello"); </script> यह client-side JavaScript है और ब्राउज़र में execute होगी।

ध्यान देने योग्य बात:

  • Classic ASP में प्रायः <% ... %> delimiters का उपयोग अधिक होता है।
  • runat="server" विशेष रूप से ASP.NET Web Forms में सामान्य है।

Request.QueryString

Request.QueryString कमांड का इस्तेमाल method="get" वाले फ़ॉर्म में वैल्यूज़ इकट्ठा करने के लिए किया जाता है।

<form method="get" action="form1.asp">
First Name: <input type="text" name="fname"><br>
Last Name: <input type="text" name="lname"><br><br>
<input type="submit" value="Submit">
</form>

यदि आप डाटा Ajeet और Kumar भर कर फॉर्म सबमिट करते हैं तो यूआरएल ऐसा होगा 

https://www.example.com/form1.asp?fname=Ajeet&lname=Kumar

इस डाटा को ASP स्क्रिप्ट द्वारा प्रोसेस करने के लिए निम्न कोड होना चाहिए

<body>
Welcome
<%
response.write(request.querystring("fname"))
response.write(" " & request.querystring("lname"))
%>
</body>

QueryString की सीमा

GET मेथड वाले फ़ॉर्म से भेजी गई जानकारी ब्राउज़र के एड्रेस बार में दिखाई देती है अतः संवेदनशील डाटा जैसे पासवर्ड को QueryString के साथ नहीं भेजना चाहिए  साथ ही QueryString में भेजी जाने वाली जानकारी की मात्रा पर सीमाएँ होती हैं।

Request.Form

Request.Form कमांड का इस्तेमाल method="post" वाले फ़ॉर्म में वैल्यूज़ इकट्ठा करने के लिए किया जाता है।

<form method="post" action="form1.asp">
First Name: <input type="text" name="fname"><br>
Last Name: <input type="text" name="lname"><br><br>
<input type="submit" value="Submit">
</form>

यदि आप डाटा Ajeet और Kumar भर कर फॉर्म सबमिट करते हैं तो यूआरएल ऐसा होगा 

https://www.example.com/form1.asp

इस डाटा को ASP स्क्रिप्ट द्वारा प्रोसेस करने के लिए निम्न कोड होना चाहिए

<body>
Welcome
<%
response.write(request.form("fname"))
response.write(" " & request.form("lname"))
%>
</body>

Form की खूबी

POST मेथड वाले फ़ॉर्म से भेजी गई जानकारी ब्राउज़र के एड्रेस बार में नहीं दिखाई देती है अतः संवेदनशील डाटा जैसे पासवर्ड को Post method के साथ भेजना चाहिए। साथ ही, QueryString के विपरीत पोस्ट मेथड से भेजी जाने वाली जानकारी की मात्रा की कोई सीमा नहीं होती हैं।


Next Post:Classic ASP Part-4 Built-in Objects in ASP Pages

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks